package com.example.cloud_disk.service;

import cn.mybatis.mp.core.mybatis.mapper.context.Pager;
import com.example.cloud_disk.dto.AdminPermissionsDTO;
import com.example.cloud_disk.dto.AdminUserDTO;
import com.example.cloud_disk.dto.GetAdminUsersPageDTO;
import com.example.cloud_disk.dto.PutPassword;
import com.example.cloud_disk.entity.AdminUsers;

public interface AdminUserService {

    /**
     * 管理员登录
     *
     * @param adminUserDTO
     * @return
     */
    String AdminLogin(AdminUserDTO adminUserDTO);

    /**
     * 管理员账户创建
     *
     * @param adminUserDTO
     * @return
     */
    String SaveAdminUser(AdminUserDTO adminUserDTO);

    /**
     * 管理员权限修改
     *
     * @param adminPermissionsDTO
     * @return
     */
    String ModificationPermissions(AdminPermissionsDTO adminPermissionsDTO);

    /**
     * 修改管理员账户状态
     *
     * @param id
     * @return
     */
    String upDataAdminStatus(Integer id);

    /**
     * 管理员账户分页及模糊查询
     *
     * @param getAdminUsersPageDTO
     * @return
     */
    Pager<AdminUsers> getAdminUsersPage(GetAdminUsersPageDTO getAdminUsersPageDTO);

    /**
     * 管理员账户删除
     *
     * @param id
     * @return
     */
    String deleteAdminUser(Integer id);

    /**
     * 修改管理员账户密码
     *
     * @param putPassword
     * @param token
     * @return
     */
    String putAdminUserPassword(PutPassword putPassword, String token);
}
